#include "../src/ccflag.h"
#include <iostream>

DEF_int32(i32, -32, "int32");
DEF_int64(i64, -64, "int64");
DEF_uint32(u32, 32, "uint32");
DEF_uint64(u64, 64, "uint64");

DEF_string(str, "hello", "std::string");
DEF_double(dbl, 3.14, "double flag");

DEF_bool(boo, false, "bool flag");
DEF_bool(x, false, "bool flag x");
DEF_bool(y, false, "bool flag y");
DEF_bool(z, false, "bool flag z");

int main(int argc, char** argv) {
  ccflag::init_ccflag(argc, argv);

  std::cout << "i32: " << FLG_i32 << '\n';
  std::cout << "i64: " << FLG_i64 << '\n';
  std::cout << "u32: " << FLG_u32 << '\n';
  std::cout << "u64: " << FLG_u64 << '\n';
  std::cout << "str: " << FLG_str << '\n';
  std::cout << "dbl: " << FLG_dbl << '\n';
  std::cout << "boo: " << (FLG_boo ? "true" : "false") << '\n';
  std::cout << "x: " << (FLG_x ? "true" : "false") << '\n';
  std::cout << "y: " << (FLG_y ? "true" : "false") << '\n';
  std::cout << "z: " << (FLG_z ? "true" : "false") << '\n';

  std::flush(std::cout);

  return 0;
}
